import unittest
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
#  1.self是什么意思如何运用
# 在Python的unittest测试框架中，self作为实例方法的第一个参数，
# 代表当前测试用例的实例对象‌,它用于访问和操作当前测试实例的属性和方法，是面向对象编程中实例方法的必要组成部分‌
# 必须包含self参数‌：虽然调用时不需要显式传递，但定义时必须作为第一个参数‌
# 通过self初始化测试数据‌
# 测试方法都通过self访问这些测试数据‌
# 每个测试方法都是独立的实例，通过self维护各自的测试状态‌
# ‌与cls的区别‌：类方法使用cls参数，而实例方法使用self参数‌
# ‌命名约定‌：虽然可以使用其他名称，但约定俗成使用self以提高代码可读性‌

# 测试前准备‌：在setUp方法中通过self初始化测试环境‌
# ‌测试后清理‌：在tearDown方法中通过self清理测试资源‌
# ‌测试数据共享‌：通过self变量在不同测试方法之间共享测试数据
class MyTestCase(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.get('https://www.baidu.com/')
        self.driver.maximize_window()
    def tearDown(self):
        time.sleep(10)
        self.driver.quit()
    def test_search(self):
        search=self.driver.find_element(By.ID,'kw')
        search.send_keys("web自动化测试")
        search.send_keys(Keys.ENTER)
        time.sleep(3)